
package trim.common.sm;

/**
 * ISMData.java
 * Интерфейс передачи начальных данных в СМ, а также
 * генерации столбца вводимого в базис.
 * Используется в {@link Simplex}.
 *
 * Created on 11.11.2008 21:14:15
 * @author Дмитрий
 */
public interface ISMData {
  /**
   * Начальное значение целевой функции
   * @return Начальное значение целевой функции
   */
    public double[] getStartObjectiveFunction();
    /**
     * Начальная базисная подматрица
     * @return Начальная базисная подматрица
     */
    public double[][] getStartBaseMatrix();
    /**
     * Начальная обратная матрица
     * @return Начальная обратная матрица
     */
    public double[][] getStartInverseMatrix();
    /**
     * Начальный вектор двойственных переменных
     * @return Начальный вектор двойственных переменных
     */
    public double[] getStartDualVariables();
    /**
     * Размерность решаемой задачи
     * @return Размерность решаемой задачи
     */
    public int getProblemSize();
    /**
     * Генерация наилучшего столбца
     * @param dualVars вектор двойственных переменных
     * @return наилучший столбец и его оценка
     */
    public SMColumn getBestColumn(double[] dualVars);
}
